<!DOCTYPE html>
<html lang="zh">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .father {
      width: 400px;
      height: 400px;
      background-color: skyblue;

      /* text-align: center;  */
      /* 水平居中：
      1、文本
      2、行内元素，如span、a
      3、行内块元素，如input、img
      如果需要以上元素水平居中，此时直接在以上元素的父元素设置即可
      特别注意：无法居中块级元素（div或者将span转换成块级元素后也无法居中） */

      /* margin: 0 auto; */
      /* 居中：
      1、块级元素
      直接给当前元素设置 */
    }

    .son {
      /* width: 100px; */
      height: 100px;
      background-color: orange;
      /* margin: 0 auto; */
      /* 注意：如果没有固定的宽度，此时设置 margin: 0 auto; 是不起作用的 */
    }

    .test1 {
      width: 200px;
      height: 200px;
      background-color: skyblue;
      text-align: center;
    }

    .test2 {
      width: 100px;
      height: 100px;
      background-color: red;
      /* 设置这个可以使span居中 */
      /* display: inline-block; */

      /* 设置这个不能使span居中 */
      display: block;
    }

    .test3 {
      width: 100px;
      height: 100px;
      background-color: orange;

      /* 只有设置了这个才能让块级元素居中 */
      margin: 0 auto;
    }
  </style>
</head>

<body>
  <div class="father">
    <div class="son"></div>
  </div>

  <br><br>

  <!-- 验证text-align不能居中块级元素 -->
  <div class="test1">
    <!-- 如果span显示模式为inline和inline-block都可以使其居中，反之为block时则不能居中 -->
    <!-- <span class="test2">哈哈哈</span> -->

    <!-- 设置text-align也不能居中，因为是块级元素 -->
    <div class="test3"></div>
  </div>
</body>

</html>